package org.huawei260.TiKu.ODsuanfa;

/**
 * @Author: qingle
 * @Date: 2024/10/28-16:11
 * @Description: 2818 【哈希表】2023B找出两个整数数组中同时出现的整数
 * @version: 1.0
 */
public class B_2023B_2818__哈希表找出两个整数数组中同时出现的整数 { // python:100%
}

/**
 *
 * # 输入获取
 * arr1 = list(map(int, input().split(",")))
 * arr2 = list(map(int, input().split(",")))
 *
 *
 * # 算法入口
 * def getResult():
 *     # 统计arr1中各数字出现次数
 *     count1 = {}
 *     for num in arr1:
 *         count1[num] = count1.get(num, 0) + 1
 *
 *     # 统计arr2中各数字出现次数
 *     count2 = {}
 *     for num in arr2:
 *         count2[num] = count2.get(num, 0) + 1
 *
 *     # arr1和arr2是否存在相同的数字，假设不存在，即noSameNum = true
 *     noSameNum = True
 *
 *     # 统计arr1和arr2的相同的数字，并记录对于数字出现的次数，注意sameCountKeys中次数是键，相同数字是值
 *     sameCountNums = {}
 *
 *     for num in count1.keys():
 *         if num in count2.keys():
 *             # 如果数字key在arr1和arr2中都有，则说明存在相同数字，此时noSameNum = false
 *             noSameNum = False
 *             # 整数在两个数组中都出现并目出现次数较少的那个
 *             count = min(count1[num], count2[num])
 *
 *             # sameCountKeys中次数是键，相同数字是值
 *             if sameCountNums.get(count) is None:
 *                 sameCountNums[count] = []
 *             sameCountNums[count].append(num)
 *
 *     # 如果两个数组之间没有相同数字，则输出"NULL"
 *     if noSameNum:
 *         print("NULL")
 *         return
 *
 *     # 否则，按照相同数字的出现次数升序，来打印对应次数下的相同数字列表
 *     tmp = list(sameCountNums.keys())
 *     tmp.sort()
 *
 *     for count in tmp:
 *         # 注意相同数字列表也要升序
 *         sameCountNums[count].sort()
 *         print(f"{count}:{','.join(map(str, sameCountNums[count]))}")
 *
 *
 * # 算法调用
 * getResult()
 *
 *
 */